package com.parking.renters.service;

import com.parking.common.core.model.PageInfo;
import com.parking.renters.entity.Renters;
import com.baomidou.mybatisplus.extension.service.IService;
import com.parking.renters.model.stallCall.dto.RentersDto;
import com.parking.renters.model.stallCall.dto.RentersInfoDto;
import com.parking.renters.model.stallCall.dto.RentersLoginDTO;
import com.parking.renters.model.stallCall.form.RegisterForm;
import com.parking.renters.model.stallCall.form.RentersLoginForm;
import com.parking.renters.model.stallCall.form.RentersPhoneForm;
import com.parking.renters.model.stallCall.form.SelectRenterForm;

import javax.servlet.http.HttpServletResponse;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 彭于晏
 * @since 2023年11月29日
 */
public interface RentersService extends IService<Renters> {
    /***
     * 出租客注册
     * @param form
     */
    void register(RegisterForm form) throws Exception;

    /***
     * 发送出租客注册验证码
     * @param phone
     * @throws Exception
     */
    void sendRegisterCode(String phone)throws Exception;

    /***
     * 出租客登录
     * @param form
     * @param response
     * @return
     */
    RentersLoginDTO login(RentersLoginForm form, HttpServletResponse response);

    /***
     * 出租客验证码登录
     * @param form
     * @param response
     * @return
     */
    RentersLoginDTO codeLogin(RentersPhoneForm form,HttpServletResponse response);

    /***
     * 发送出租客登录验证码
     * @param phone
     */
    void sendLoginCode(String phone);

    /***
     * 退出登录
     * @param rentersId
     */
    void loginOff(Integer rentersId);

    /***
     * 根据出租客id查询出租客账号
     * @param rentersId
     * @return
     */
    RentersDto selectRentersById(Integer rentersId);

    /***
     * 平台开启出租客账号
     * @param rentersId
     * @param platformId
     */
    void startState(Integer rentersId,Integer platformId);

    /***
     * 平台禁用出租客账号
     * @param rentersId
     * @param platformId
     */
    void disableState(Integer rentersId,Integer platformId);

    /***
     * 平台删除出租客账号
     * @param rentersId
     * @param platformId
     */
    void deleteState(Integer rentersId,Integer platformId);

    /***
     * 查询出租客账号
     * @param form
     * @return
     */
    PageInfo selectRenters(SelectRenterForm form);


}
